package com.bizmerce.rnd.oms.decision.data;

import org.apache.commons.lang.StringUtils;
import org.apache.commons.lang.builder.ToStringBuilder;

public class HsCode {

	/**
	 * 류를 표현하는 상수
	 */
	public static final String CC = "CC";
	
	/**
	 * 호를 표현하는 상수
	 */
	public static final String CTH = "CTH";
	
	/**
	 * 소호를 표현하는 상수
	 */
	public static final String CTSH = "CTSH";
	
	/**
	 * 품목분류코드
	 */
	private String code;
	
	/**
	 * 류: HS 2단위
	 */
	private String chapter;
	
	/**
	 * 호: HS 4단위
	 */
	private String tariffHeading;
	
	/**
	 * 소호: HS 6단위
	 */
	private String tariffSubHeading;

	public HsCode() {
		//nothing
	}
	
	public HsCode(String code) {
		setCode(code);
	}
	
	public String getCode() {
		return code;
	}
	
	public void setCode(String code) {
		this.code = code;
		if (code == null || code.length() < 6) {
			throw new IllegalArgumentException(
					"잘못된 형식의 품목분류 코드는 사용할 수 없습니다.[입력값:" + code + "]");
		}
		chapter = StringUtils.substring(code, 0, 2);
		tariffHeading = StringUtils.substring(code, 0, 4);
		tariffSubHeading = StringUtils.substring(code, 0, 6);
	}

	public String getChapter() {
		return chapter;
	}

	public String getTariffHeading() {
		return tariffHeading;
	}

	public String getTariffSubHeading() {
		return tariffSubHeading;
	}
	
	public String toString() {
		return ToStringBuilder.reflectionToString(this);
	}
}
